import * as React from "react"; import { fireEvent, render, waitFor } from "@testing-library/react"; import { MutationCache, QueryCache, QueryClient, QueryClientProvider, } from "react-query"; const renderWithClient = (client: QueryClient, ui: React.ReactElement) => { const { rerender, ...result } = render( {ui} ); return { ...result, rerender: (rerenderUi: React.ReactElement) => rerender( {rerenderUi} ), }; }; describe("use[FCName]", () => { const queryCache = new QueryCache(); const mutationCache = new MutationCache(); const queryClient = new QueryClient({ queryCache, mutationCache }); it("should ", async () => { function Page() { const { mutate, data = { label: "" } } = use[FCName](); return (

{data["label"]}

); } const { getByTestId, getByText } = renderWithClient(queryClient, ); expect(getByTestId("title").textContent).toBe(""); fireEvent.click(getByText("mutate")); await waitFor(() => getByTestId("title")); expect(getByTestId("title").textContent).toBe(); }); });